import json
import tdsvis
import pandas as pd
import networkx as nx
The graph structure
tmp = json.loads(open("data/ieee_8500/graph.json").read())
g = nx.DiGraph()
for node in tmp['nodes']:
g.add_node(node['name'], data=node)
for edge in tmp['edges']:
g.add_edge(edge['source'], edge['target'])
pos = { node['name']: (node['x'], node['y'] ) for node in tmp['nodes']}
Timeseries
template = pd.read_csv("data/te_data/results/house_totalLoad.csv", skiprows=8)
template.rename(columns={'# timestamp': 'timestamp'}, inplace=True)
template['timestamp'] = pd.to_datetime(template['timestamp'])
template.set_index('timestamp', inplace=True)
prices = pd.read_csv("data/te_data/results/res_alpha.csv").T
prices.columns = template.columns
prices.index = template.index
prices = prices.loc["2000-09-01 06:00:00":].resample("30min").mean()
prices = prices.unstack().reset_index()
prices.columns = ['name', 'timestamp', 'value']
prices['phase'] = prices['name'].map(lambda x: x.split("_")[0][-1])
import tdsvis
tdsvis.initialize_notebook(1200)
select = tdsvis.select()
initial_state = tdsvis.graphs.InitialState(current_time = "2000-09-01 14:00:00",
color="#FF0000")
play = tdsvis.graphs.Play()
network = tdsvis.graphs.Network(g, pos, scale=1, height=300, width=340,
size={'house': 5, 'node': 0.2},
legend=False)
network.subscribe = ['price_colorB', 'price_colorA', 'price_colorC']
pdf = tdsvis.graphs.Line(prices[prices['phase']=='B'], x='timestamp', y='name', margin_left=75,
ylab="load", xlab="time", values='value', scale=1, height=340, width=340)
pdf.emit_color = tdsvis.color.ContinuousColor('price_colorB', 0.1, 1, tdsvis.color.continuous.interpolateBlues)
pdf.subscribe = ['price_colorB']
apdf = tdsvis.graphs.Line(prices[prices['phase']=='A'], x='timestamp', y='name', margin_left=75,
ylab="load", xlab="time", values='value', scale=1, height=340, width=340)
apdf.emit_color = tdsvis.color.ContinuousColor('price_colorA', 0.1, 1, tdsvis.color.continuous.interpolateGreens)
apdf.subscribe = ['price_colorA']
cpdf = tdsvis.graphs.Line(prices[prices['phase']=='C'], x='timestamp', y='name', margin_left=75,
ylab="load", xlab="time", values='value', scale=1, height=340, width=340)
cpdf.emit_color = tdsvis.color.ContinuousColor('price_colorC', 0.1, 1, tdsvis.color.continuous.interpolateOranges)
cpdf.subscribe = ['price_colorC']
tdsvis.graphs.render([select, initial_state, play, network, pdf, apdf], standalone=False)
tdsvis.graphs.render([select, initial_state, play, network, pdf, apdf], standalone=False)